ZŁĄCZENIA ZEWNĘTRZNE 1. Wyświetl ID wypożyczenia, markę i model wszystkich wypożyczonych aut. SELECT dane_wypozyczen.id_wypozyczenia, samochody.marka, samochody.model FROM dane_wypozyczen INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu ORDER BY dane_wypozyczen.id_wypozyczenia 2. Wyświetl ID wypożyczenia, markę, model oraz datę wypożyczenia wszystkich wypożyczonych aut. SELECT dane_wypozyczen.id_wypozyczenia, samochody.marka, samochody.model wypożyczenia.data_wyp FROM dane_wypozyczen INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu INNER JOIN wypożyczenia ON wypozyczenia.id_wypozyczen=dane_wypozyczen.id_wypozyczenia ORDER BY dane_wypozyczenia.id_wypozyczenia 3. Wyświetl model i markę samochodu datę wypożyczenia, jak również imię i nazwisko klienta, który dany samochód wypożyczył. SELECT dane_wypozyczen.id_wypozyczenia, samochody.marka, samochody.model, wypozyczenia.data_wyp, klienci.imie_klienta, klienci.nazwisko_klienta FROM dane_wypozyczen INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu INNER JOIN wypozyczenia ON wypozyczenia.id_wypozyczenia=dane_wypozyczen.id_wypozyczenia INNER JOIN klienci ON klienci.id_klienta=wypozyczenia.id_klienta ORDER BY dane_wypozyczen.id_wypozyczenia; 4. Wyświetl model i markę samochodu datę wypożyczenia, jak również imię i nazwisko klienta, który dany samochód wypożyczył ponadto wypisz imię i nazwisko pracownika, który obsługiwal dane wypożyczenie. SELECT dane_wypozyczen.id_wypozyczenia, samochody.marka, samochody.model, wypozyczenia.data_wyp, klienci.imie_klienta, klienci.nazwisko_klienta, pracownicy.imie_pracownika, pracownicy.nazwisko_pracownika FROM dane_wypozyczen INNER JOIN samochody ON samochody.id_samochodu=dane_wypozyczen.id_samochodu INNER JOIN wypozyczenia ON wypozyczenia.id_wypozyczenia=dane_wypozyczen.id_wypozyczenia INNER JOIN klienci ON klienci.id_klienta=wypozyczenia.id_klienta INNER JOIN pracownicy ON pracownicy.id_pracownika=wypozyczenia.id_pracownika ORDER BY dane_wypozyczen.id_wypozyczenia; 5. Wyświetl markę i model samochodu z datą jego wypożyczenia SELECT wypozyczenia.data_wyp, samochody.marka, samochody.model FROM wypozyczenia INNER JOIN dane_wypozyczen ON wypozyczenia.id_wypozyczenia=dane_wypozyczen.id_wypozyczenia INNER JOIN samochody ON samochody.id_samochodu-dane_wypozyczen.id_samochodu ORDER BY wypozyczenia.data_wyp 6. SELECT d.id_wypozyczenia, s.marka, s.model FROM dane_wypozyczen d INNER JOIN samochody s ON s.id_samochodu = d.id_samochodu ORDER BY d.id_wypozyczenia; LEFT/RIGHT JOIN - złączenie zewnętrzne, które wyświetla rekordy zgodne z warunkiem złączenia oraz wszystkie rekordy pochodzące z tablicy, której nazwa znajduje się po lewej/prawej stronie klauzuli FROM 7. Wyświetl ID wypożyczenia i nazwisko pracownika, który je obsługiwał. Nazwiska pracowników, którzy nie obsługiwali żadnego wypożyczenia również należy wypisać. SELECT pracownicy.nazwisko_pracownika, wypozyczenia.id_wypozyczenia FROM pracownicy LEFT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_wypozyczenia; 8. Wyświetl nazwiska pracowników, którzy nie obsługiwali żadnego wypożyczenia. SELECT pracownicy.nazwisko_pracownika FROM pracownicy LEFT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_pracownika WHERE wypozyczenia.id_wypozyczenia IS null ORDER BY `wypozyczenia`.`id_wypozyczenia` ASC; 9. Wyświetl nazwisko pracownika i ID jego wypożyczenia. W przypadku kiedy do ID wypożyczenia nie mamy przypisanego pracownika należy również wyświetlić takie rekordy. SELECT pracownicy.nazwisko_pracownika, wypozyczenia.id_wypozyczenia FROM pracownicy RIGHT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_pracownika; gdzie nie ma pracownika (wyświetl ID wypozyczen do których nie przypisano pracowników.) SELECT pracownicy.nazwisko_pracownika, wypozyczenia.id_wypozyczenia FROM pracownicy RIGHT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_pracownika WHERE pracownicy.id_pracownika IS NULL; 10. z left join poprzednie polecenie SELECT pracownicy.nazwisko_pracownika, wypozyczenia.id_wypozyczenia FROM pracownicy LEFT JOIN wypozyczenia ON pracownicy.id_pracownika=wypozyczenia.id_pracownika; 11. Wyświetl imiona i nazwiska klientów, którzy nie wypożyczyli żadnego auta. SELECT klienci.imie_klienta, klienci.nazwisko_klienta FROM klienci LEFT JOIN wypozyczenia ON klienci.id_klienta=wypozyczenia.id_klienta WHERE wypozyczenia.id_klienta IS NULL z right join SELECT klienci.imie_klienta, klienci.nazwisko_klienta FROM klienci RIGHT JOIN wypozyczenia ON klienci.id_klienta=wypozyczenia.id_klienta WHERE wypozyczenia.id_klienta IS NULL 12. Wyświetl markę i modele samochodów, które nigdy nie zostały wypożyczone. SELECT dane_wypozyczen. id_wypozyczenia , samochody. marka, samochody. model FROM dane_wypozyczen INNER JOIN samochody ON samochody. id_samochodu ORDER BY dane_wypozyczen. id_wypozyczenia 13. Wyświetl imiona i nazwiska klientów wraz z wartością ich wszystkich wypożyczeni SELECT SUM(dane_wypozyczen.cena_doba*dane_wypozyczen.ilosc_dob) wartość, klienci.imie_klienta, klienci.nazwisko_klienta FROM dane_wypozyczen INNER JOIN wypozyczenia ON wypozyczenia.id_wypozyczenia=dane_wypozyczen.id_wypozyczenia INNER JOIN klienci ON klienci.id_klienta=wypozyczenia.id_klienta GROUP BY wypozyczenia.id_klienta 14. Wyświetl imiona i nazwiska klientów i pracowników pochodzących z tych samych miast SELECT klienci.imie_klienta, klienci.nazwisko_klienta, pracownicy.imie_pracownika, pracownicy.nazwisko_pracownika, pracownicy.miasto_pracownika miasto FROM klienci INNER JOIN pracownicy ON klienci.miasto_klienta=pracownicy.miasto_pracownika 15. Wyświetl nazwisko pracownika i obok jego szefa SELECT p.nazwisko_pracownika, s.nazwisko_pracownika szef FROM pracownicy p JOIN pracownicy s ON p.id_pracownika